home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xa;
-
- import com.extensibility.app.BaseDocument;
- import com.extensibility.app.UI;
- import com.extensibility.rock.RBevelBorder;
- import com.extensibility.rock.RButton;
- import com.extensibility.xml.BaseDeclaration;
- import com.extensibility.xml.ParserException;
- import java.awt.BorderLayout;
- import java.text.MessageFormat;
- import java.util.Enumeration;
- import java.util.Vector;
- import javax.swing.JComponent;
- import javax.swing.JLabel;
- import javax.swing.JList;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JSplitPane;
- import javax.swing.JTextArea;
- import javax.swing.event.ListSelectionListener;
-
- public class ErrorPane extends CompositePane {
- static final String LARGE_STRING = ">< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< ";
- static final String WRITE_BREAK = ">< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< ";
- JScrollPane scroller;
- JList list;
- Vector errors;
- Vector decls;
- JSplitPane split;
- JTextArea details;
- JPanel panel;
- SchemaDoc inDoc;
- int declErrCount;
- int parserErrCount;
- ListSelectionListener selListener;
- JLabel lblErrors;
- JComponent hdrButtons;
- CheckErrAction checkErrAction = new CheckErrAction(this);
- static final MessageFormat mf1 = new MessageFormat(UI.getString("err.encounter.pe"));
- static final MessageFormat mf2 = new MessageFormat(UI.getString("err.encounter.uri"));
- static final MessageFormat mf3 = new MessageFormat(UI.getString("err.encounter.pe.within"));
- static final MessageFormat mf4 = new MessageFormat(UI.getString("err.encounter.uri.within"));
-
- public static boolean available(SchemaDoc var0) {
- return !var0.getParseErrors().isEmpty();
- }
-
- public JComponent getComponent() {
- return this.panel;
- }
-
- protected JComponent createHeaderButtons() {
- return new RButton(this.checkErrAction);
- }
-
- public ErrorPane(SchemaDoc var1) {
- super(var1);
- this.inDoc = var1;
- this.lblErrors = new JLabel();
- this.hdrButtons = this.createHeaderButtons();
- this.panel = new JPanel(new BorderLayout());
- this.panel.setBorder(new RBevelBorder(1));
- this.details = new JTextArea();
- this.details.setEditable(false);
- this.details.setLineWrap(true);
- this.details.setWrapStyleWord(true);
- this.list = new JList();
- this.list.setCellRenderer(new ErrorCell(((BaseDocument)var1).getURI()));
- JScrollPane var2 = new JScrollPane(this.list);
- CompositePane.setHeader(var2, this.lblErrors, this.hdrButtons);
- this.panel.add(var2, "Center");
- this.resetErrors();
- this.list.setSelectedIndex(0);
- this.list.requestFocus();
- }
-
- public void resetErrors() {
- this.errors = new Vector();
- Vector var1 = this.inDoc.getParseErrors();
-
- for(int var2 = 0; var2 < var1.size(); ++var2) {
- this.errors.addElement(var1.elementAt(var2));
- }
-
- this.decls = new Vector();
- this.parserErrCount = this.errors.size();
- this.decls.setSize(this.parserErrCount);
- this.declErrCount = 0;
- Enumeration var3 = this.inDoc.getDeclarations();
-
- while(var3.hasMoreElements()) {
- BaseDeclaration var4 = (BaseDeclaration)var3.nextElement();
- if (var4.hasErrors()) {
- Vector var5 = var4.getErrors();
-
- for(int var6 = 0; var6 < var5.size(); ++var6) {
- ++this.declErrCount;
- this.decls.addElement(var4);
- this.errors.addElement(var5.elementAt(var6));
- }
- }
- }
-
- this.setErrors();
- if (this.errors.size() == 0) {
- ((CompositePane)this).getSchemaWin().hideErrorPane();
- }
-
- }
-
- public void setErrors() {
- if (this.selListener != null) {
- this.list.removeListSelectionListener(this.selListener);
- this.selListener = null;
- }
-
- this.list.removeAll();
- this.list.setListData(this.errors);
- if (this.errors.size() > 0) {
- this.selListener = new 1(this);
- this.list.addListSelectionListener(this.selListener);
- }
-
- this.list.invalidate();
- }
-
- private void showError(ParserException var1, int var2) {
- if (var1 != null && var2 != -1) {
- BaseDeclaration var3 = (BaseDeclaration)this.decls.elementAt(var2);
- if (var3 != null) {
- XADesktop.selectDeclaration(var3, this.inDoc, false);
- } else if (((CompositePane)this).getSchemaWin() != null) {
- ((CompositePane)this).getSchemaWin().showFilePane(var1);
- }
-
- }
- }
-
- public String getClassName() {
- return "com.extensibility.xa.ErrorPane";
- }
-
- public String formatDetails(ParserException var1) {
- StringBuffer var2 = new StringBuffer();
- var2.append(var1.getMessage());
- boolean var3 = true;
- Enumeration var4 = var1.getContext();
- var2.append(" ");
-
- while(var4.hasMoreElements()) {
- ParserException.Context var5 = (ParserException.Context)var4.nextElement();
- if (var3) {
- if (var5.isInternal()) {
- var2.append(mf1.format(new String[]{var5.getName()}));
- } else if (!var5.getURI().hasPersistence()) {
- var2.append(UI.getString("err.recurse", "pe."));
- } else {
- var2.append(mf2.format(new String[]{(new Integer(var5.getColumn())).toString(), (new Integer(var5.getLine())).toString(), var5.getURI().getFullName()}));
- }
-
- var3 = false;
- } else if (var5.isInternal()) {
- var2.append(mf3.format(new String[]{var5.getName()}));
- } else if (var5.getURI().hasPersistence()) {
- String var6 = var5.getURI().getFullName();
- var2.append(mf4.format(new String[]{(new Integer(var5.getLine())).toString(), var6}));
- }
- }
-
- var2.append(UI.getString("err.decl.source"));
- var2.append(System.getProperty("line.separator"));
- var2.append(System.getProperty("line.separator"));
- var2.append(var1.getSource());
- return var2.toString();
- }
-
- // $FF: synthetic method
- static void access$2000071(ErrorPane var0, ParserException var1, int var2) {
- var0.showError(var1, var2);
- }
- }
-